# python中单引号和双引号使用完全相同。
print("abc" == 'abc')  # True
# 使用三引号('''或""")可以指定一个多行字符串。
print("""第一行
第二行
""")

# 转义符 '\'
# 反斜杠可以用来转义，使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示，并不是换行。
print("123\t123")  # 123     123 # (\t相当于tab)
print(r"123\t123")  # 123\t123 # (\t打印出来就是\t)
# 按字面意义级联字符串，如"this " "is " "string"会被自动转换为this is string。
print("this " "is " "string")  # this is string
print("123" '   ' r"456")  # 123   456
# 字符串可以用 + 运算符连接在一起，用 * 运算符重复。
print("this " + "is " + "string")  # this is string
print("123" + '   ' + r"456")  # 123   456

# 输出字符串两次，也可以写成 print (2 * str)
print("123" * 2)

# Python中的字符串不能改变。
# Python 中的字符串有两种索引方式，从左往右以 0 开始，从右往左以 -1 开始。
# 符串的截取的语法格式如下：变量[头下标:尾下标:步长]

# ------987654321
str0 = "abcdefghi"

# ++++++012345678
print(str0[5])  # f
print(str0[2:-1])  # cdefgh # 不会包含最后1个
print(str0[2:])  # cdefghi
print(str0[:-2])  # abcdefg # 不会包含倒数第2个
print(str0[::2])  # acegiacegi
print(str0[1:8:2])  # bdfh

# str0[5] = '2'
# # ×！，不能这么写，因为str0[]只能读取，而不能修改

'------------ f-string 格式化字符串（超好用）-------------'
# f-string 是 python3.6 之后版本添加的，称之为字面量格式化字符串，是新的格式化字符串的语法。
# f-string 格式化字符串以 f 开头，后面跟着字符串，字符串中的表达式用大括号 {} 包起来，它会将变量或表达式计算后的值替换进去，实例如下：
print(f'This is str0: {str0} ')  # This is str0: abcdefghi
print(f'1*2*3={1*2*3}')  # 1*2*3=6=6
# 在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果：
print(f"{11+2=}")  # 11+2=13

"-------------Python 的字符串内建函数---------------"
"https://www.runoob.com/python3/python3-string.html"
